#define _CRT_SECURE_NO_WARNINGS

//#include <stdio.h>
//int main()
//{
//	int arr[5] = { 1,2,3,4,5 };
//	int* p = arr;
//	printf("%d\n", p - &arr[1]);
//	return 0;
//}

#include <iostream>
using namespace std;
//
//class A
//{
//public:
//	explicit A(int a = 1)
//	{
//		cout << "A(int a = 1)" << endl;
//		_a = a;
//	}
//
//	A(A& x)
//	{
//		cout << "A(A& x)" << endl;
//		_a = x._a;
//	}
//
//private:
//	int _a;
//};
//
//int main()
//{
//	A a1(1);
//	A a2 = 5;
//	//const A& a2 = 5;
//
//	return 0;
//}
//


//class A
//{
//public:
//	A(int b = 1)
//		:_b(b)
//	{}
//private :
//	static int _a;
//	int _b;
//};
//int A::_a = 1;
//
//int main()
//{
//	A a1;
//	return 0;
//}

class A
{
public:
	A() { ++_scount; }
	A(const A& t) { ++_scount; }
	~A() { --_scount; }
	static int GetACount() { return _scount; }
private:
	static int _scount;
};

int A::_scount = 0;

void TestA()
{
	cout << A::GetACount() << endl;
	A a1, a2;
	A a3(a1);
	cout << A::GetACount() << endl;
}